-
Notifications
You must be signed in to change notification settings - Fork 168
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[CUDAX] Remove launch overloads taking dimensions and make everything except make_hierarchy return kernel_config #2979
base: main
Are you sure you want to change the base?
Conversation
🟩 CI finished in 22m 21s: Pass: 100%/54 | Total: 4h 42m | Avg: 5m 14s | Max: 16m 32s | Hits: 63%/256
|
Project | |
---|---|
CCCL Infrastructure | |
libcu++ | |
CUB | |
Thrust | |
+/- | CUDA Experimental |
python | |
CCCL C Parallel Library | |
Catch2Helper |
Modifications in project or dependencies?
Project | |
---|---|
CCCL Infrastructure | |
libcu++ | |
CUB | |
Thrust | |
+/- | CUDA Experimental |
python | |
CCCL C Parallel Library | |
Catch2Helper |
🏃 Runner counts (total jobs: 54)
# | Runner |
---|---|
43 | linux-amd64-cpu16 |
5 | linux-amd64-gpu-v100-latest-1 |
4 | linux-arm64-cpu16 |
2 | windows-amd64-cpu16 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Question: Do we really need make_hierarchy
? Wouldnt it make everything easier if a user would always create a config and then can get the hierarchy information from the config?
I thought about removing |
I believe that at this point launch overloads taking
hierarchy_dimensions
instead ofkernel_config
is more of a past design artifact.Hierarchy design predates kernel config and initially launch overloads taking a hierarchy were provided to make sure user won't need to take that extra step of converting hierarchy to a config (implicit conversion was not possible as well).
Recently
make_config
was extended to accept hierarchy levels. Now given a set of levels, if no launch options are needed the difference is literallymake_hierarchy
producing a hierarchy type andmake_config
producing a kernel config containing the same hierarchy.I believe we should force users to use the
kernel_config
type in majority of cases and make it the only possiblelaunch
argument for below reasons:distribute<N>(M).add(option1, option2)
vsmake_config(distribute<N>(M), option1, option2)
. I like how now user is mostly concerned about manipulating configs, instead of both hierarchies and configs and how they interact, unless they have some very specific case.As a consequence of this change I also changed
distribute
and all of theoperator&
to returnkernel_config
so it works well withlaunch
. I think we should keepmake_hierarchy
function for some special cases user would be interested only in the hierarchy type, but vast majority of cases it shouldn't be needed.